namespace Nethereum.Wallet.UI.Components.Avalonia.Extensions
{
    public static class IconMappingExtensions
    {
        public static string ToAvaloniaPathIconData(this string iconIdentifier)
        {
            return iconIdentifier?.ToLowerInvariant() switch
            {
                "key" => "M12 15.5A3.5 3.5 0 0 1 8.5 12A3.5 3.5 0 0 1 12 8.5A3.5 3.5 0 0 1 15.5 12A3.5 3.5 0 0 1 12 15.5M19.37 3.37L17.96 4.78C19.19 6.01 20 7.83 20 9.83C20 14.37 16.37 18 11.83 18C9.83 18 8.01 17.19 6.78 15.96L5.37 17.37C7.29 19.29 9.92 20.5 12.83 20.5C18.12 20.5 22.5 16.12 22.5 10.83C22.5 7.92 21.29 5.29 19.37 3.37M12.83 2C10.04 2 7.47 3.18 5.56 5.09L6.97 6.5C8.4 5.07 10.53 4.25 12.83 4.25C17.05 4.25 20.5 7.7 20.5 11.92C20.5 14.22 19.68 16.35 18.25 17.78L19.66 19.19C21.57 17.28 22.75 14.71 22.75 11.92C22.75 6.63 18.37 2.25 12.83 2Z",
                "vpn_key" => "M12 1C8.69 1 6 3.69 6 7V8H4V14H14V8H12V7C12 4.79 10.21 3 8 3C5.79 3 4 4.79 4 7V8H2V14H12V8H10V7C10 5.79 8.21 4 6 4C3.79 4 2 5.79 2 8V14H0V8H2V7C2 3.69 4.69 1 8 1C11.31 1 14 3.69 14 7V8H12V7C12 3.69 9.31 1 6 1C2.69 1 0 3.69 0 7V8H-2V14H8V8H6V7C6 3.69 8.69 1 12 1Z",
                "visibility" => "M12 4.5C7 4.5 2.73 7.11 1 11.5C2.73 15.89 7 18.5 12 18.5C17 18.5 21.27 15.89 23 11.5C21.27 7.11 17 4.5 12 4.5ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17ZM12 9C10.34 9 9 10.34 9 12C9 13.66 10.34 15 12 15C13.66 15 15 13.66 15 12C15 10.34 13.66 9 12 9Z",
                "visibility_off" => "M12 7C14.76 7 17 9.24 17 12C17 12.65 16.87 13.26 16.64 13.82L19.56 16.74C21.07 15.49 22.26 13.86 22.99 12C21.26 7.61 16.99 4.5 11.99 4.5C10.59 4.5 9.25 4.75 8.01 5.2L10.17 7.35C10.74 7.13 11.35 7 12 7ZM2 4.27L4.28 6.55L4.73 7L7.74 10.01C7.59 10.64 7.5 11.31 7.5 12C7.5 14.76 9.74 17 12.5 17C13.19 17 13.82 16.91 14.45 16.76L16.84 19.15C15.2 19.72 13.6 20 12 20C7 20 2.73 17.39 1 13C1.69 11.24 2.79 9.62 4.27 8.18L2 5.91L3.41 4.5L22.5 23.59L21.09 25L19.84 23.75C18.25 24.61 16.61 25 15 25C14.22 25 13.46 24.89 12.73 24.69L10.9 22.86C9.4 22.31 8 21.5 6.8 20.5C4.85 18.85 3.5 16.69 3 14.5C2.5 12.31 2.85 10.15 4.27 8.18L2 5.91L3.41 4.5Z",
                "copy" => "M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",
                "content_copy" => "M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",
                "clear" => "M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z",
                "smart_toy" => "M20 9H4V7H20V9ZM4 11H20V13H4V11ZM20 15H4V17H20V15Z",
                "account_circle" => "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 5C13.66 5 15 6.34 15 8C15 9.66 13.66 11 12 11C10.34 11 9 9.66 9 8C9 6.34 10.34 5 12 5ZM12 19.2C9.5 19.2 7.29 17.92 6 15.98C6.03 14 10 12.9 12 12.9C14 12.9 17.97 14 18 15.98C16.71 17.92 14.5 19.2 12 19.2Z",
                "more_vert" => "M12 8C13.1 8 14 7.1 14 6C14 4.9 13.1 4 12 4C10.9 4 10 4.9 10 6C10 7.1 10.9 8 12 8ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10ZM12 16C10.9 16 10 16.9 10 18C10 19.1 10.9 20 12 20C13.1 20 14 19.1 14 18C14 16.9 13.1 16 12 16Z",
                "chevron_right" => "M8.59 16.59L13.17 12L8.59 7.41L10 6L16 12L10 18L8.59 16.59Z",
                "menu" => "M3 18H21V16H3V18ZM3 13H21V11H3V13ZM3 6V8H21V6H3Z",
                "notifications" => "M12 22C13.1 22 14 21.1 14 20H10C10 21.1 10.9 22 12 22ZM18 16V11C18 7.93 16.37 5.36 13.5 4.68V4C13.5 3.17 12.83 2.5 12 2.5C11.17 2.5 10.5 3.17 10.5 4V4.68C7.63 5.36 6 7.93 6 11V16L4 18V19H20V18L18 16Z",
                "notifications_outlined" => "M12 22C13.1 22 14 21.1 14 20H10C10 21.1 10.9 22 12 22ZM18 16V11C18 7.93 16.37 5.36 13.5 4.68V4C13.5 3.17 12.83 2.5 12 2.5C11.17 2.5 10.5 3.17 10.5 4V4.68C7.63 5.36 6 7.93 6 11V16L4 18V19H20V18L18 16ZM16 15.17V11C16 8.52 14.48 6.5 12 6.5C9.52 6.5 8 8.52 8 11V15.17L6.5 16.67V17.5H17.5V16.67L16 15.17Z",
                _ => "M0 0h24v24H0z"
            };
        }
    }
}
